let source = [
  {
    id: 1,
    pid: 0,
    name: "body",
  },
  {
    id: 2,
    pid: 1,
    name: "title",
  },
  {
    id: 3,
    pid: 2,
    name: "div",
  },
];

function zhuanhuan(arr, pid = 0) {
  arr
    .filter(item => {
      return item.id == pid;
    })
    .map(item1 => { 
      return {
        ...item,zhuanhuan()
      }
    });
}
zhuanhuan(source);
// function zhuanhuan(num, obj) {
//   return obj.filter(item => {
//     return item.pid == num
//   }).map(item => {
//     return { ...item, children: zhuanhuan(item.id, obj) }
//   })
// }
// console.dir(zhuanhuan(0, source));
